<?php
/*
 *   命名规则   前缀加   f_str_
 */

/**
 * 使用正则验证数据  来自 ThinkPHP/Lib/Core/Model.class.php
 * 
 * @access public
 * @param string $value  要验证的数据
 * @param string $rule 验证规则 require,email,url,currency,number,zip,integer,double,english,alipay
 * @return boolean
 */
function f_str_regex($value,$rule) {
	$validate = array(
		'require'   =>  '/.+/',
		'email'     =>  '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
		'url'       =>  '/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',
		'currency'  =>  '/^\d+(\.\d+)?$/',
		'number'    =>  '/^\d+$/',
		'zip'       =>  '/^\d{6}$/',
		'integer'   =>  '/^[-\+]?\d+$/',
		'double'    =>  '/^[-\+]?\d+(\.\d+)?$/',
		'english'   =>  '/^[A-Za-z]+$/',
	);
	
	// 支付宝验证
	if (strtolower($rule) == 'alipay') {
		if (preg_match($validate['email'],$value)===1){
			return true;
		} else if (preg_match($validate['number'],$value)===1 && strlen($value) >10){
			return true;
		} else {
			return false;
		}
	}
	
	// 检查是否有内置的正则表达式
	if(isset($validate[strtolower($rule)]))
		$rule       =   $validate[strtolower($rule)];
	return preg_match($rule,$value)===1;
}

/**
 * 字符串压缩
 *
 * @param string $str
 * @return string
 */
function f_str_compress($str){
	return gzdeflate($str, 9);
}

/**
 * 字符串解压缩
 *
 * @param string $str_un
 * @return string
 */
function f_str_compress_un($str_un){
	return gzinflate($str_un);
}

/**
 * 查找字符串内是否含有某字符串
 * 
 * @param string $mystring
 * @param string $findme
 * @return bool
 */
function f_str_strpos($mystring, $findme){
	$pos =  strpos($mystring, $findme);
	if ($pos !== false) {
		return true;
	}
	return false;
}

/**
 * 去掉回去换行符
 * 
 * @param string $s
 * @return string
 */
function f_str_EOL($s){
	return str_replace(PHP_EOL, '', $s);
}

function f_str_UCStoUTF8($s){
	return preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $s);
}
